x11: Declare variable for the inner loop
authorCarlos Garnacho <carlosg@gnome.org>
Wed, 9 Sep 2015 14:05:15 +0000 (16:05 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Wed, 9 Sep 2015 14:46:26 +0000 (16:46 +0200)
Otherwise the outer loop control variable is messed up, and we end
up with uninitialized axes if there were any more valuators after
the XIKeyClass one.

This bug was sneakily introduced by fdb9a8e14, many thanks to
Carlos Soriano for helping spot the source of this bug.

https://bugzilla.gnome.org/show_bug.cgi?id=753431

gdk/x11/gdkdevicemanager-xi2.c

index e63c35b82b1ff9a3e1256de0e1f1d42f031c3627..2401ff1ce76f37bc60f2f80aca1f56f4255378b1 100644 (file)
@@ -214,11 +214,12 @@ translate_device_classes (GdkDisplay      *display,
         case XIKeyClass:
           {
             XIKeyClassInfo *key_info = (XIKeyClassInfo *) class_info;
+            gint j;
 
             _gdk_device_set_keys (device, key_info->num_keycodes);
 
-            for (i = 0; i < key_info->num_keycodes; i++)
-              gdk_device_set_key (device, i, key_info->keycodes[i], 0);
+            for (j = 0; j < key_info->num_keycodes; j++)
+              gdk_device_set_key (device, j, key_info->keycodes[j], 0);
           }
           break;
         case XIValuatorClass: